<?php
/**
 * 示例model（标注表的作用）
 * panglishan
 * 2020.08.13
 */
namespace App\Models\MainDB;

use Illuminate\Database\Eloquent\Model;

class UserWithdraw extends Model{

    protected $table = 'ln_user_withdraw';     //数据库内完整表名

    protected $primaryKey = 'id';    //主键名

    protected $fillable = [
        'id',      //主键ID
        'user_id',         //用户id
        'bank_id',      //提现卡号id
        'money',      //提现金额
        'gold',      //提现金币
        'status',      //1.待审核 2.通过 3.拒绝
        'platform_status',      //1.待审核 2.通过 3.拒绝
        'audit_time',//审核时间
        'add_time',      //添加时间
        'remark',      //备注
        'bank_num',      //卡号
        'bank_type',      //1支付宝2微信3银行卡
        'cardholder',      //持卡人
        'card_number',      //身份证号
        'bank_name',      //银行名称
        'bank_zhi',      //支行
        'mobile',      //手机号
        'coin',      //包含特殊币数量
        'fail_reason'   //失败原因
    ];

    public $timestamps = false;

    public  function  user(){
        return $this->hasOne('App\Models\MainDB\User','user_id','user_id');
    }
    public  function  user_data(){
        return $this->hasOne('App\Models\MainDB\UserData','user_id','user_id');
    }

    public  function  user_bank(){
        return $this->hasOne('App\Models\MainDB\UserBank','id','bank_id');
    }

    //改变状态
    public function editStatus($status,$remark = '') {
        return $this->update(
            [
                'platform_status' => $status,
                'remark'          => $remark,
                'audit_time'      => time(),
                'update_time'     => time(),
            ]
        );
    }

    /**********审核状态*********/
    // 审核中
    const CHECK_STATUS_VERIFY = 1;
    // 通过
    const CHECK_STATUS_PASS = 2;
    // 不通过
    const CHECK_STATUS_REFUSE = 3;

    //打款状态
    const PAYMENT_STATUS_DEFAULT = 0;//默认初始状态
    // 审核中，待打款
    const PAYMENT_STATUS_VERIFY = 1;
    // 通过
    const PAYMENT_STATUS_PASS = 2;
    // 不通过
    const PAYMENT_STATUS_REFUSE = 3;

    //改变状态
    public function editBankStatus($status,$failReason = '') {
        $updateData = [
            'platform_status' => $status,
            'fail_reason'          => $failReason,
            'audit_time'      => time(),
            'update_time'     => time(),
        ];
//        if ($status == 3) {
//            $updateData['status'] = $status;
//        }
        return $this->update(
            $updateData
        );
    }
}
